home *** CD-ROM | disk | FTP | other *** search
-
-
-
- FLOCK C Library Procedures FLOCK
-
-
-
- NNAAMMEE
- flock - apply or remove an advisory lock on an open file
-
- SSYYNNOOPPSSIISS
- ##iinncclluuddee <<ssyyss//ffiillee..hh>>
-
- ##ddeeffiinnee LLOOCCKK__SSHH 11 //** sshhaarreedd lloocckk **//
- ##ddeeffiinnee LLOOCCKK__EEXX 22 //** eexxcclluussiivvee lloocckk **//
- ##ddeeffiinnee LLOOCCKK__NNBB 44 //** ddoonn''tt bblloocckk wwhheenn lloocckkiinngg **//
- ##ddeeffiinnee LLOOCCKK__UUNN 88 //** uunnlloocckk **//
-
- fflloocckk((ffdd,, ooppeerraattiioonn))
- iinntt ffdd,, ooppeerraattiioonn;;
-
- DDEESSCCRRIIPPTTIIOONN
- _F_l_o_c_k applies or removes an _a_d_v_i_s_o_r_y lock on the file asso-
- ciated with the file descriptor _f_d. A lock is applied by
- specifying an _o_p_e_r_a_t_i_o_n parameter that is the inclusive or
- of LOCK_SH or LOCK_EX and, possibly, LOCK_NB. To unlock an
- existing lock _o_p_e_r_a_t_i_o_n should be LOCK_UN.
-
- Advisory locks allow cooperating processes to perform con-
- sistent operations on files, but do not guarantee con-
- sistency (i.e., processes may still access files without
- using advisory locks possibly resulting in inconsistencies).
-
- The locking mechanism allows two types of locks: _s_h_a_r_e_d
- locks and _e_x_c_l_u_s_i_v_e locks. At any time multiple shared
- locks may be applied to a file, but at no time are multiple
- exclusive, or both shared and exclusive, locks allowed
- simultaneously on a file.
-
- A shared lock may be _u_p_g_r_a_d_e_d to an exclusive lock, and vice
- versa, simply by specifying the appropriate lock type; this
- results in the previous lock being released and the new lock
- applied (possibly after other processes have gained and
- released the lock).
-
- Requesting a lock on an object that is already locked nor-
- mally causes the caller to be blocked until the lock may be
- acquired. If LOCK_NB is included in _o_p_e_r_a_t_i_o_n, then this
- will not happen; instead the call will fail and the error
- EWOULDBLOCK will be returned.
-
- NNOOTTEESS
- Locks are on files, not file descriptors. That is, file
- descriptors duplicated through _d_u_p(2) or _f_o_r_k(2) do not
- result in multiple instances of a lock, but rather multiple
- references to a single lock. If a process holding a lock on
- a file forks and the child explicitly unlocks the file, the
- parent will lose its lock.
-
-
-
-
- Sprite v1.0 May 22, 1986 1
-
-
-
-
-
-
- FLOCK C Library Procedures FLOCK
-
-
-
- Processes blocked awaiting a lock may be awakened by sig-
- nals.
-
- RREETTUURRNN VVAALLUUEE
- Zero is returned if the operation was successful; on an
- error a -1 is returned and an error code is left in the glo-
- bal location _e_r_r_n_o.
-
- EERRRROORRSS
- The _f_l_o_c_k call fails if:
-
- [EWOULDBLOCK] The file is locked and the LOCK_NB
- option was specified.
-
- [EBADF] The argument _f_d is an invalid descrip-
- tor.
-
- [EINVAL] The argument _f_d refers to an object
- other than a file.
-
- SSEEEE AALLSSOO
- open(2), close(2), dup(2), execve(2), fork(2)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Sprite v1.0 May 22, 1986 2
-
-
-
-